package com.micro.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.math.BigDecimal;
import java.sql.Time;
import java.time.LocalDate;
import java.time.LocalDateTime;

@TableName("火车票订单")
public class TrainTicketOrder {

    @TableId(value = "订单ID", type = IdType.AUTO)
    private Long orderId;

    @TableField("用户ID")
    private Long userId;

    @TableField("列车ID")
    private Long trainId;

    @TableField("出发站ID")
    private Long departureStationId;

    @TableField("到达站ID")
    private Long arrivalStationId;

    @TableField("车厢ID")
    private Long carriageId;

    @TableField("座位ID")
    private Long seatId;

    @TableField("座位类型")
    private String seatType;

    @TableField("乘客ID")
    private Long passengerId;

    @TableField("出发时间")
    private Time departureTime;

    @TableField("到达时间")
    private Time arrivalTime;

    @TableField("乘客姓名")
    private String passengerName;

    @TableField("乘客身份证")
    private String passengerIdCard;

    @TableField("票价")
    private BigDecimal price;

    @TableField("车票状态")
    private Byte ticketStatus; // 0-已支付,1-已退票,2-已使用

    @TableField("车次日期")
    private LocalDate trainData;

    @TableField("支付时间")
    private LocalDateTime paymentTime;

    @TableLogic
    @TableField("deleted")
    private Integer deleted;

    // 构造方法
    public TrainTicketOrder() {}

    // Getter和Setter方法
    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getTrainId() {
        return trainId;
    }

    public void setTrainId(Long trainId) {
        this.trainId = trainId;
    }

    public Long getDepartureStationId() {
        return departureStationId;
    }

    public void setDepartureStationId(Long departureStationId) {
        this.departureStationId = departureStationId;
    }

    public Long getArrivalStationId() {
        return arrivalStationId;
    }

    public void setArrivalStationId(Long arrivalStationId) {
        this.arrivalStationId = arrivalStationId;
    }

    public Long getCarriageId() {
        return carriageId;
    }

    public void setCarriageId(Long carriageId) {
        this.carriageId = carriageId;
    }

    public Long getSeatId() {
        return seatId;
    }

    public void setSeatId(Long seatId) {
        this.seatId = seatId;
    }

    public String getSeatType() {
        return seatType;
    }

    public void setSeatType(String seatType) {
        this.seatType = seatType;
    }

    public Long getPassengerId() {
        return passengerId;
    }

    public void setPassengerId(Long passengerId) {
        this.passengerId = passengerId;
    }

    public Time getDepartureTime() {
        return departureTime;
    }

    public void setDepartureTime(Time departureTime) {
        this.departureTime = departureTime;
    }

    public Time getArrivalTime() {
        return arrivalTime;
    }

    public void setArrivalTime(Time arrivalTime) {
        this.arrivalTime = arrivalTime;
    }

    public String getPassengerName() {
        return passengerName;
    }

    public void setPassengerName(String passengerName) {
        this.passengerName = passengerName;
    }

    public String getPassengerIdCard() {
        return passengerIdCard;
    }

    public void setPassengerIdCard(String passengerIdCard) {
        this.passengerIdCard = passengerIdCard;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public Byte getTicketStatus() {
        return ticketStatus;
    }

    public void setTicketStatus(Byte ticketStatus) {
        this.ticketStatus = ticketStatus;
    }

    public LocalDate getTrainData() {
        return trainData;
    }

    public void setTrainData(LocalDate trainData) {
        this.trainData = trainData;
    }

    public LocalDateTime getPaymentTime() {
        return paymentTime;
    }

    public void setPaymentTime(LocalDateTime paymentTime) {
        this.paymentTime = paymentTime;
    }

    public Integer getDeleted() {
        return deleted;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }
}
